package com.ruoyi.dm.component;

import com.ruoyi.dm.domain.BO.ResReturnBO;

import java.io.IOException;

/**
 * 数据解析处理策略
 */
public interface DataStrategy<T> {

    /**
     * po 的一些 特殊化的组装
     * @param po
     * @return
     */
    T makeupPo(T po);


    /**
     * 根据参数 调用解析脚本
     * @param satellite   卫星名称
     * @param dataType  (再分析的网格间距)
     * @param filePath
     * @param method 插值方法
     * @param time 解析时间
     * @return
     */
    String pythonCmd( String satellite, String dataType, String filePath, String method,Integer time);

    /**
     * 不通过脚本,直接解析
     * @param file
     * @return
     */
    default ResReturnBO analysis(String file) throws Exception {
        return null;
    };

    /**
     * 结果文件保存 (主要针对密度)
     * @param outFile
     * @return
     */
    default void save(String satellite, String outFile) throws IOException, Exception {

    };


}
